package cmd

import (
	"log"
	"os"

	"github.com/spf13/cobra"
	"github.com/spf13/cobra/doc"
)

// DocsCmd represents the docs command
var DocsCmd = &cobra.Command{
	Use:   "docs",
	Short: "为 gopack 生成 Markdown 格式的文档",
	Long:  `此命令会自动为 gopack 的所有子命令生成 Markdown 格式的文档，并保存在 ./docs/ 目录下。`,
	Run: func(cmd *cobra.Command, args []string) {
		// 创建目标目录
		if err := os.MkdirAll("./docs", 0755); err != nil {
			log.Fatalf("创建文档目录失败: %v", err)
		}
		// 使用 cmd.Root() 来获取根命令，从而打破初始化循环
		err := doc.GenMarkdownTree(cmd.Root(), "./docs")
		if err != nil {
			log.Fatal(err)
		}
		log.Println("文档已成功生成在 ./docs 目录下")
	},
}